package java6681.ktv;

import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.ListView;
import javafx.scene.control.TextField;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

public class KTVSelect6681Controller {
    /*全部歌曲列表*/
    private ObservableList<String> items;
    /*输入歌曲*/
    private String tfNewNameText;

    @FXML
    private TextField tfNewName;

    @FXML
    private ListView<String> lvNames;

    @FXML
    /*打开窗口时在ListView中显示所有曲目*/
    private void initialize() {
        ObservableList<String> items = lvNames.getItems();
        /*ListView中已显示所有曲目*/
        items.addAll("给你们", "水星记", "无人之岛", "海浪", "跳海", "阿司匹林", "美好前程");
        /*ListView中的第一项默认已被选中*/
        lvNames.getSelectionModel().selectFirst();
    }

    @FXML
        /*增加歌曲*/
    void addClick() {
        items = lvNames.getItems();
        tfNewNameText = tfNewName.getText();
        /*没有输入，点增加*/
        if (tfNewNameText.isEmpty()) {
            System.out.println("无输入");
            /*输入多个空格，点增加*/
        } else if (tfNewNameText.trim().length() == 0) {
            System.out.println("多个空格");
            /*输入一个已存在的歌名*/
        } else if (lvNames.getItems().contains(tfNewNameText.trim())) {
            System.out.println("已存在");
        } else {
            items.add(tfNewNameText.trim());
            /*增加新的歌名后，应该使新歌名处于被选中状态*/
            lvNames.getSelectionModel().select(tfNewNameText);
        }
    }


    @FXML
        /*下一移一首*/
    void downClick() {
        /*获取全部歌曲*/
        items = lvNames.getItems();
        /*选中的歌曲*/
        String selectedItem = lvNames.getSelectionModel().getSelectedItem();
        /*查找歌曲位置*/
        int i = items.indexOf(selectedItem);
        if (i > 0) {
            /*判断是不是最后一个歌曲*/
            if (items.get(items.size() - 1) != selectedItem) {
                /*移除选中的歌曲*/
                items.remove(selectedItem);
                /*将指定的歌曲下移*/
                items.add(i + 1, selectedItem);
            }

        }
        lvNames.getSelectionModel().select(selectedItem);
    }

    @FXML
        /*上移一首*/
    void upClick() {
        /*获取全部歌曲*/
        items = lvNames.getItems();
        /*选中的歌曲*/
        String selectedItem = lvNames.getSelectionModel().getSelectedItem();
        /*查找歌曲位置*/
        int i = items.indexOf(selectedItem);
        if (i == 0) {
            System.out.println("已经置顶了");
        } else {
            /*移除选中的歌曲*/
            items.remove(selectedItem);
            /*将指定的歌曲上移*/
            items.add(i - 1, selectedItem);
        }
        lvNames.getSelectionModel().select(selectedItem);
    }

    @FXML
        /*置顶*/
    void topClick() {
        /*获取全部歌曲*/
        items = lvNames.getItems();
        /*选中的歌曲*/
        String selectedItem = lvNames.getSelectionModel().getSelectedItem();
        /*查找歌曲位置*/
        int i = items.indexOf(selectedItem);
        /*存在就置顶*/
        if (i > 0) {
            items.remove(selectedItem);
            items.add(0, selectedItem);
        }
        /*当前歌名置顶之后，要保证其仍然处于被选中状态*/
        lvNames.getSelectionModel().select(selectedItem);
    }


}
